iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0
AI/ ML & Data

From Python Beginner To AI Engineer系列 第 25

來點更美麗的字串

  • 分享至 

  • xImage
  •  

f-string

在 Python 裡面,可以使用 f-string 的技巧來使用格式化字串,例如:

>>> a = 123
>>> print(f"變數 a 的內容為 {a}")
變數 a 的內容為 123

在字串的雙引號 " 前面加上 f,並在字串裡面用大括號來把要輸出的變數給夾起來,這樣就能在字串裡面放入變數。這樣就能在一個字串裡面,方便的表示多個變數:

>>> name = "Penut Chen"
>>> score = 94.87
>>> print(name, "的數學拿到", score, "分")  # 原本需要這樣表示
>>> print(f"{name} 的數學拿到 {score} 分")  # 現在可以這樣表示
Penut Chen 的數學拿到 94.87 分
Penut Chen 的數學拿到 94.87 分

整數對齊

可以在變數後面加上 :3d 來進行三位數的對齊:

>>> arr = [1, 23, 456]
>>> for i, a in enumerate(arr):
>>>     print(f"arr[{i}] = {a:3d}")
arr[0] =   1
arr[1] =  23
arr[2] = 456

d 代表十進位 Decimal 的意思,這樣就會用至少三個字元的長度來輸出整數,不足三位數的,則會在前面補上空格。如果想要補零而不是補空格的話,可以改成 :03d 之類的:

>>> for i, a in enumerate(arr):
>>>     print(f"arr[{i}] = {a:03d}")
arr[0] = 001
arr[1] = 023
arr[2] = 456

小數位數

如果是浮點數的話,則可以用 :.3f 來指定小數點後的位數:

>>> pi = 3.1415926
>>> print(f"圓周率是 {pi:.3f}")
3.142

f 就是浮點數 Float 的意思,:.3f 會顯示到小數點下第三位,但是要特別注意,這樣的做法會對最後一位進行四捨五入,所以變成 3.142。

字串對齊

字串的對齊可以使用 :3s,但預設是靠左對齊:

>>> arr = ["a", "ab", "abc"]
>>> for i, a in enumerate(arr):
>>>     print(f"arr[{i}] = [{a:3s}]")
arr[0] = [a  ]
arr[1] = [ab ]
arr[2] = [abc]

可以在冒號後面加上 > 來靠右對齊:

>>> for i, a in enumerate(arr):
>>>     print(f"arr[{i}] = [{a:>3s}]")
arr[0] = [  a]
arr[1] = [ ab]
arr[2] = [abc]

甚至可以用 ^ 來置中對齊:

>>> arr = ["a", "abc", "abcde"]
>>> for i, a in enumerate(arr):
>>>     print(f"arr[{i}] = [{a:^5s}]")
arr[0] = [  a  ]
arr[1] = [ abc ]
arr[2] = [abcde]

熟悉這些格式化字串的操作,對各種開發情境的處理都有所幫助。


上一篇
索引值不一定要是整數
下一篇
內建的字串方法很方便
系列文
From Python Beginner To AI Engineer31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言